/**
* @file        LocSignalDeliverFactory
* @brief
* @version     1.0.0
* @author      Changlin.Jing 
* @date        2023/2/16 14:45
* @copyright   Copyright  2022 Langge Software Co., Ltd. All rights reserved.
*/
#include "LocSignalDeliverFactory.hpp"
#include <memory>
BEGIN_SPACE_LANGE_VDR

/**
 * 根据操作ID编排操作步骤序列
 * ID 与 处理类一一对应
 * @param workState
 * @param nextDeliver
 * @param deliverId
 * @return
 */
std::shared_ptr<vdr::ILocSignalDeliver> vdr::LocSignalDeliverFactory::make(const WorkState &workState,
                                                                            const std::shared_ptr<ILocSignalDeliver> &nextDeliver,
                                                                            const vdr::LocSignalDeliverId deliverId) {
    std::shared_ptr<ILocSignalDeliver> signalDeliver(nullptr);
    switch (deliverId) {
//        // 信号过滤
//        case SIGNAL_DELIVER_LOC_SIGNAL_FILTER:
//            signalDeliver = std::make_shared<LocSignalFilterDeliver>(workState,nextDeliver,deliverId);
//            break;
//        // 位置质量评估
//        case SIGNAL_DELIVER_LOCATION_QUALITY_ESTIMATOR:
//            signalDeliver = std::make_shared<LocationQualityEstimatorDeliver>(workState, nextDeliver, deliverId);
//            break;
//        // 姿态解算
//        case SIGNAL_DELIVER_ATTITUDE_ESTIMATOR:
////            signalDeliver = std::make_shared<vdr::AttitudeEstimatorDeliver>(workState,nextDeliver,deliverId);
////            break;
//        // 位置估计
//        case SIGNAL_DELIVER_POSITION_ESTIMATOR:
//            //            signalDeliver = std::make_shared<vdr::PositionEstimatorDeliver>(workState,nextDeliver,deliverId);
//            //            break;
//        // 速度估计
//        case SIGNAL_DELIVER_SPEED_ESTIMATOR:
//            signalDeliver = std::make_shared<SpeedEstimateDeliver>(workState,nextDeliver,deliverId);
//            break;
//        default:
//            break;
    }
    return signalDeliver;
}
END_SPACE_LANGE_VDR